package object3;

/**
 * 类方法
 * 定义：访问修饰符 static 数据返回类型 方法名(){}
 * 访问：类名.类方法名
 */
public class StaticMethod {

    public static void main(String[] args) {

        //创建两个学生对象交学费
        Stu jack = new Stu("jack");
        Stu.payFee(100.0);

        Stu marry = new Stu("marry");
        Stu.payFee(200.0);

        //输出收到的总学费
        Stu.showFee();//300

        //如果希望不创建实例，也可以调用某个方法（当成工具来用）
        //把方法做成静态方法时非常合适
        System.out.println("9 开平方的结果是=" + Math.sqrt(9.0));

        System.out.println(Tools.calSum(3, 10));
    }
}

class Tools {

    //求出两数和
    public static double calSum(double n1, double n2) {
        return n1 + n2;
    }

}

class Stu {

    //普通成员
    private String name;

    //静态变量 fee 累计学生的学费
    private static double fee = 0;

    public Stu(String name) {
        this.name = name;
    }

    //说明
    //1.当方法使用了static修饰后，该方法就是静态方法
    //2.静态方法就可以访问静态属性/变量
    public static void payFee(double fee) {
        Stu.fee += fee;
    }

    public static void showFee() {
        System.out.println("总学费有=" + fee);
    }

}